Page-Level Cooperative Garbage Collection
نویسندگان
چکیده
Programs written in garbage-collected languages like Java often have large working sets and poor locality. Worse, a full garbage collection must visit all live data and is likely to touch pages that are no longer resident, triggering paging. The result is a pronounced drop in throughput and a spike in latency. We show that just a slight reduction in available memory causes the throughput of the SPECjbb benchmark to drop by 66% and results in garbage collection pauses lasting for several seconds. This paper introduces page-level cooperative garbage collection, an approach in which the garbage collector works with the virtual memory manager to limit paging. We present a novel, cooperative garbage collection algorithm called Hippocratic collection. By communicating with the virtual memory manager and “bookmarking” objects, the Hippocratic collector eliminates paging caused by garbage collection. Our approach requires only modest extensions to existing virtual memory management algorithms. We present empirical results using our modified Linux kernel. We show that the Hippocratic collector runs in smaller footprints than traditional collectors while providing competitive throughput. Under memory pressure, Hippocratic collection improves the throughput of SPECjbb by a factor of two over the next best garbage collector.
منابع مشابه
Comparative Performance Evaluation of Garbage Collection Algorithms
This thesis shows that object-level, trace-driven simulation can facilitate evaluation of language runtime systems and reaches new conclusions about the relative performance of important garbage collection algorithms. In particular, I reach the unexpected conclusion that mark-and-sweep garbage collection, when augmented with generations, shows comparable CPU performance and much better referenc...
متن کاملBuffer-Aware Garbage Collection for NAND Flash Memory-Based Storage Systems
With continuing improvements in both the price and the capacity, flash memory-based storage devices are becoming a viable solution for satisfying high-performance storage demands of desktop systems as well as mobile embedded systems. Because of the erase-before-write characteristic of flash memory, a flash memorybased storage system requires a garbage collection, which often introduces large pe...
متن کاملAn Equation-Based Heap Sizing RuleI
For garbage-collected applications, dynamically-allocated objects are contained in a heap. Programmer productivity improves significantly if there is a garbage collector to automatically de-allocate objects that are no longer needed by the applications. However, there is a run-time performance overhead in garbage collection, and this cost is sensitive to heap size H : a smaller H will trigger m...
متن کاملA Cache-Pinning Strategy for Improving Generational Garbage Collection
In generational garbage collection, the youngest generation of the heap is frequently traversed during garbage collection. Due to randomness of the traversal, memory access patterns are unpredictable and cache performance becomes crucial to garbage-collection efficiency. Our proposal to improve cache performance of garbage collection is to “pin” the youngest generation (sometimes called the nur...
متن کاملA Method for Specifying and Proving Distributed Cooperative Algorithms
This paper outlines a new approach for specifying, proving, and implementing distributed cooperative algorithms associated with an object-oriented design. There are many examples of distributed algorithms that can be implemented in this way (ordered multicast, routing, spanning tree construction, election, distributed garbage collection). These algorithms present several peculiar aspects due to...
متن کامل